Method and system for a computer system to support various communication devices

ABSTRACT

A system method of interfacing a computer system executing commercial transactions initiated from communication devices, each communication device having a display, with custom display parameters, is provided. For the system and method, at the computer system, for each device, a command is received and translated into a common format command. The common format command is executed and results therefrom are received. A database is accessed having elements identifying sets of display parameters, one set of the sets is for use with the custom display parameters. One set of display parameters is retrieved from the database.

FIELD OF INVENTION

This invention relates generally to a method and system for a computersystem in a communication network, and in particular, a system andmethod for a computer system in a communication network to supportheterogeneous communication devices.

BACKGROUND OF THE INVENTION

The existence of high-speed personal Internet connections and the use ofthe World Wide Web for commerce, entertainment and education providesignificant benefits to users of the Internet. The wide-spread, low-costand continuous availability of web-based information services hasspawned changes ranging from new business models to facilitating accessto government and education services, to the rapid and free exchange ofideas and information for all members of the Internet community.

Traditionally, devices communicating with the World Wide Web werecomputers. The computers operated “browser” software thereon tocommunicate with remote computers and servers connected to the WorldWide Web. However, recently, a new class of devices is being developedto perform transactions with these web-based information services. Inparticular, personal digital assistants, mobile phones, office PCs andhome entertainment systems provide pervasive computing systems allowingaccess to the services on the World Wide Web.

Pervasive computing provides access to relevant information stored onpowerful networks, allowing them to easily take action anywhere,anytime. These new intelligent appliances or “smart devices” areembedded with microprocessors that allow users to plug into intelligentnetworks and gain direct, simple, and secure access to both relevantinformation and services. These devices may be as simple to use ascalculators, telephones or kitchen toasters. They are also known aspervasive computing devices. Pervasive computing simplifies life bycombining open standards-based applications with everyday activities.

However, there are issues with interfacing these pervasive computingdevices with services provided through the Internet. For example, ane-commerce application operating through the Internet must properlycommunicate with each device in accordance with the device's protocolsfor communications, display, interfacing and other parameters.

Technologies, such as servlets, Enterprise Java Beans (EJBs) and JavaServer Pages (JSPs), enable modular development of software fore-commerce applications to consider these issues. However, e-commerceapplications utilizing these technologies should still consider issuessuch as:

-   -   1. Providing common server components that can process requests        from various Internet clients or internal processes, such as a        web browser operating on a personal computer, a web-enabled        mobile phone or an internal job scheduler;    -   2. Separating business logic from views, so that business logic        may be reused in other applications;    -   3. Establishing transaction and access limits to maintain data        integrity and maximum transaction throughput;    -   4. Providing common interface to the clients but allowing        different implementations of the business logic based on the        need of an individual store in an electronic mall; and    -   5. Providing a system and method for distributed commercial        transaction processing.

Accordingly, there is a need to provide an e-commerce system, wherein acommon platform is provided which can accommodate various displayinterface and reporting requirements for various devices accessing thesystem.

SUMMARY OF THE INVENTION

In a first aspect, a method of interfacing a computer system executingcommercial transactions initiated from communication devices, eachdevice having a display with custom display parameters is provided. Forone device, the method receives a command from the device, translatesthe command into a common format command, the common format commandbeing executable by the computer system, executes the common formatcommand, receives results from execution of the common format command,accesses a database containing elements identifying sets of displayparameters, one set for use with the custom display parameters andretrieves from the database the set of display parameters.

The method may extract command parameters from the command into anobject after receiving the command and initiate displaying of theresults using the set of display parameters on the device afterretrieving the set of display parameters from the database.

The method may translate the command into the common format command byaccessing a first table having a first record, the first record having afirst entry for the command and a second table having a second recordcorrelated to the first record for the common format command.

The method may incorporate the results of the execution of the commonformat command into the object after receiving the results.

The method may incorporate the set of display parameters into the objectafter retrieving the display parameters from the database. Further, themethod may incorporate into the object a view command identifying acomposition of a view associated with the command after retrieving theset of display parameters from the database. Further the method mayselect a view command from a forward view, a redirected view or a directview.

The method may be embodied in an object oriented programming language.

In a second aspect an article comprising a computer readable medium anda program encoded on the medium is provided. The program is for use in acomputer system executing commercial transactions initiated fromcommunication devices, each device having a display with custom displayparameters. The program embodies a method comprising the following stepsfor one device: receiving a command from the device, translating thecommand into a common format command, the common format command beingexecutable by the computer system, executing the common format command,receiving results from execution of the common format command, accessinga database having elements identifying sets of display parameters, oneset for use with the custom display parameters and retrieving from thedatabase the set of display parameters.

The article may have the method of the program further comprising thesteps of extracting command parameters from the command into an objectafter receiving the command and initiating displaying of the resultsusing the set of display parameters on the device after retrieving theset of display parameters from the database.

The article may have the method of the program further accessing a firsttable having a first record, the first record having a first entry forthe command and a second table having a second record correlated to thefirst record for the common format command.

The article may have the method of the program further comprising thesteps of incorporating the results into the object after receiving theresults from execution of the common format command.

The article may have the method of the program further comprisingincorporating the set of display parameters into the object afterretrieving from the database the set of display parameters.

The article may have the method of the program further comprisingincorporating a view command identifying a composition of a viewassociated with the command into the object after retrieving from thedatabase the set of display parameters.

The article may have the method of the program further comprisingproducing an output report relating the results to the device.

In a third aspect, a system for executing commercial transactionsinitiated from communication devices is provided. Each communicationdevice has a display with custom display parameters. The systemcomprises a computer, a communication link for the computer to thecommunication devices and a program operating on the computer. Theprogram embodies a method comprising, for one device, receiving acommand from the device, translating the command into a common formatcommand, the common format command being executable by the computersystem, executing the common format command, receiving results fromexecution of the common format command, accessing a database comprisingelements identifying sets of display parameters, one set associated withthe custom display parameters, and retrieving from the database the setof display parameters.

The system may have the method of the program further comprisingextracting command parameters from the command into an object afterreceiving the command and initiating displaying of the results using theset of display parameters on the device after retrieving the set ofdisplay parameters from the data from the database.

The system may have the method of the program further accessing a firsttable having a first record, the first record having a first entry forthe command and a second table having a second record correlated to thefirst record for the common format command.

The system may have the method of the program further comprisingincorporating the results into the object after receiving the resultsfrom execution of the common format command.

The system may have the method of the program farther comprisingincorporating the set of display parameters into the object afterretrieving it from the database.

The system may have the method of the program further comprisingincorporating a view command identifying a composition of a viewassociated with the command into the object after retrieving from thedatabase the set of display parameters.

The system may have the method of the program further comprisingproducing an output report relating the results on the device.

In a fourth aspect, an article is provided. The article comprises acomputer readable modulated carrier signal and a program encoded in thecomputer readable modulated carrier signal. The program is for use in acomputer system executing commercial transactions initiated fromcommunication devices, each device having a display with custom displayparameters. The program embodies a method comprising, for one device,receiving a command from the device, translating the command into acommon format command, the common format command being executable by thecomputer system, executing the common format command, receiving resultsfrom execution of the common format command, accessing a databasecomprising elements identifying sets of display parameters, one set foruse with the custom display parameters and retrieving from the databasethe set of display parameters.

The article may have the method comprising extracting command parametersfrom the command into an object after receiving the command andinitiating displaying of the results using the set of display parameterson the device after retrieving the set of display parameters from thedatabase.

The system may have the method of the program further accessing a firsttable having a first record, the first record having a first entry forthe command and a second table having a second record correlated to thefirst record for the common format command.

The system may have the method of the program further comprisingincorporating the results into the object after receiving the resultsfrom execution of the common format command.

The system may have the method of the program further comprisingincorporating the set of display parameters into the object afterretrieving from the database the set of display parameters.

The system may have the method of the program further comprisingincorporating a view command identifying a composition of a viewassociated with the command into the object after retrieving from thedatabase the set of display parameters.

The system may have the method of the program further comprisingproducing an output report relating the results on the device.

Other aspects of the invention provide various combinations and subsetsof the aspects described above.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other aspects of the invention will become moreapparent from the following description of specific embodiments thereofand the accompanying drawings which illustrate, by way of example only,the principles of the invention. In the drawings, where like elementsfeature like reference numerals (and wherein individual elements bearunique alphabetical suffixes):

FIG. 1 is a block diagram of a communication network including ane-commerce server comprising an embodiment of the invention;

FIG. 1A is a block diagram the e-commerce server of the embodiment ofFIG. 1;

FIG. 2 is a representative screen shot of a browser page utilized by adevice accessing the server of FIG. 1;

FIG. 3 is a block diagram of software modules operating on the server ofFIG. 1;

FIG. 3A is a block diagram of the software modules shown in FIG. 3during execution of a transaction;

FIG. 4A is a pseudo-code listing of a Request Servlet for the softwareassociated with the server of FIG. 1;

FIG. 4B(i)-(ii) collectively are listings of Adapter modules associatedwith the request servlet of FIG. 4A;

FIGS. 4C(i)-(v) collectively are a pseudo-code listing of a controllerfor software associated with the server of FIG. 1;

FIG. 5 is block diagram of relationships of commands for the softwareoperating on the server of FIG. 1;

FIG. 6A is a pseudo-code listing of an MQ adapter for the softwareassociated with the server of FIG. 1;

FIG. 6B is a pseudo-code listing of an XML controller for the softwareassociated with the MQ adapter of FIG. 5A;

FIG. 7A is a pseudo-code listing of a scheduler for the softwareassociated with the server of FIG. 1;

FIG. 7B are pseudo-code listings of a schedule thread and a scheduleradapter associated with the server of FIG. 1;

FIG. 7C is a pseudo-code listing of a scheduler web controller for thesoftware associated with the server of FIG. 1;

FIG. 8 is a block diagram of a hash table used by the software of theembodiment shown in FIG. 1; and

FIG. 9 is block diagram of an exemplary view table for the embodiment ofthe software of FIG. 1.

DETAILED DESCRIPTION OF THE EMBODIMENTS

The description which follows, and the embodiments described therein,are provided by way of illustrating an example, or examples, ofparticular embodiments of principles of the present invention. Theseexamples are provided for the purpose of explanation, and notlimitation, of those principles and of the invention. In the descriptionwhich follows, like elements are marked throughout the specification andthe drawings with the same respective reference numerals.

Referring to FIGS. 1 and 1A, e-commerce server 100 is shown connected tonetwork 102. Web browser on computer 104 is connected to network 102 andcommunicates through network 102 to server 100. Cell phone 108 and pager110 also communicate with server 100. Intermediary gateways 112 and 114,respectively, provide required hardware and software interfaces for cellphone 108 and pager 110 to communicate with network 102 and, hence, toserver 100. Other computers 100 b may have software providingbusiness-to-business applications with server 100. Communication network102 may be the Internet.

Server 100 is a typical computer having a microprocessor and memory forstoring and executing software. Software may be loaded into server 100via a floppy disk 116 through a disk drive 118, CD-ROM 120 through aCD-ROM drive 122 or via downloaded software through a network connectionto network 102 from another computer 100 c. It will be appreciated thatother media devices and mechanisms may be used to load software on toserver 100 such as a remote download through the network connection. Thesoftware may be encoded on an appropriate carrier signal receivedthrough the connection.

Server 100 provides clients operating web browser 104, web-enabledcellular communication device 108, pager 110 or similar web-enableddevices with access to software operating thereon. The software providesprocessing of commercial transactions, including ordering products andquerying aspects of products (e.g. price, size, availability).Information regarding products catalogued by the software is stored ondatabase 106. Database 106 is also associated with software on server100. It can be appreciated that database 106 may be located withinserver 100 or may be associated with server 100 in a distributed mannerthrough network 102, such as with database 106 a.

From web-browser 104, remote resources located on server 100 may beaccessed through network 102 using an appropriate Uniform ResourceLocator, (URL), which is a pointer to a “resource” on the World WideWeb. A resource may be a file or a directory, or it may be a referenceto a more complicated object, such as a query to a database or to asearch engine.

In general, a URL can be broken into several parts. The exemplary URL“http://www.ncsa.uiuc.edu/demoweb/url-primer.html” indicates that theprotocol to use is http (Hyper Text Transfer Protocol) and that theinformation resides on a host machine named www.ncsa.uiuc.edu. Theinformation on that host machine is named /demoweb/url-primer.html. Theexact meaning of this name on the host machine is both protocoldependent and host dependent. The information normally resides in afile, but it maybe generated dynamically. This component of the URL iscalled the path component.

Referring to FIG. 2, screen shot 200 shows a typical transaction screenshown on web browser 104 when accessing software on server 100.Transaction screen 200 has fields 202 into which a user enters orselects values to compose a transaction, which will be executed onserver 100. Consider an example where a user of browser 104 is in a website of an electronic shopping mall having several merchants. The usercan select various items from various merchants. The user now wishes toadd a “stove” selected from “Merchants” having a price of “$500”. Thistransaction is to be added to the user's “shopping cart”. Through webbrowser 104, the user enters or selects the values for the fields, e.g.“stove” in field 202 a, “Merchants” in field 202 b, then selects a pricefrom field 202 c, e.g. $500. The user then activates the “Add to Cart”button 204, which causes the software on server 100 to generate anappropriate command to add an item for “stoves” from “Merchants” whichcost “$500” to the shopping cart of the user. For the above example, webbrowser 104 may cause the generation of a URL such as“http:\\compute\name\addtoshopcart?catalogid=stove&catalogitem=1234&price=500”which embodies the request. The software on server 100 executes therequest in the URL and reports the results to web browser 104 in anappropriate format. It will be appreciated that a similar transactionmay be initiated to server 100 through a cell phone 108 or pager 110.Accordingly, the display format for cell phone 108 and pager 110 maydiffer from the display format of web-browser 104, due to the differingphysical size and capabilities of each display for each device 104, 108or 110. The embodiment enables server 100 to provide various displayformats for differing devices 104, 108 and 110, while isolating the dataprocessing aspects of the software on server 100 from its displayprocessing for each device 104, 108 and 110.

Referring to FIG. 3, elements of software operating on server 100 areshown. At a basic level, first, browser 104 generates a URL containing arequest. The request is received by server 100 at a receiving engine302. In the preferred embodiment, separate servlet engines 302 a isprovided for a URL request. The servlet engine 302 a analyses therequest and allocates a thread 303 to the request. Threads and theirprocessing, are known in the art.

Next, a protocol listener 304 “listens” for a request originating from areceiving engine 302. In the preferred embodiment, request servletengine 304 a is the protocol listener for URL requests.

Protocol listener 304 passes the information in the URL to anappropriate adapter 307. There are several adapters in server 100. Eachadapter formats data into an appropriate format for each the of device.For example, in the embodiment adapters 307 include: HTTP adapter 307 a,XML adapter 307 b, and scheduler adapter 307 c. Specific types of HTTPadapters 307 include browser adapter 307 d and PVC adapter 307 c. Notehowever, that in the preferred embodiment, an adapter manager 305 isprovided to select the appropriate adapter 307. Once the particularadapter 307 is identified, adapter manager 305 passes the request to theadapter.

The task of the adapter 307 is to create an object as the common elementmanipulated by the software on server 100. Use of an object enablesfunctional commands associated with the request to be isolated frominterface issues with the requesting devices and enables new displaytypes for new devices to be implemented without affecting theimplementation of the command logic for the software. Adapter 307populates the object with information from the URL request and passesthe object to the web controller 306 a. A response object is alsogenerated, which, in the embodiment, is the same as the response objectreceived by the request servlet engine.

Web controller 306 a receives the request object and the response objectand creates a command context for the request. The command contextprovides execution parameters for controller commands and view commands(described later) and contains request object information and sessioninformation. Session information includes language, store, useridentification and other information associated with the session inwhich the user currently resides.

To instantiate the correct command to process one request, webcontroller 306 a accesses data in command registries 309 to identify thecommand to execute corresponding to the request. Three tables areaccessed. First, Table A (described later) contains a URL registry whichcontains an interface name related to a command registry. A commandregistry table (Table B, described later) has a corresponding interfacename which contains the name of the class to instantiate. The webcontroller then instantiate the command which uses the command context.Table C, described later, contains information relating to displayparameters which will be used when reporting the results of the requestto the input device.

Next, web controller 306 a passes the request properties and the commandcontext to the controller command. The web controller then calls for theexecution of the controller command and the controller command executes.In execution, the controller command builds response properties into aresponse properties object. The response properties object includes ahash table which includes a view name.

Next, web controller 306 a retrieves the response properties from thecontroller command. Web controller 306 a then instantiates a viewcommand based on one view name specified in the response properties andthe input device identified in the command context and executes the viewcommand. Execution of the view command causes the results of thecontroller command to be displayed on the calling browser 104 in adisplay format which is compatible with the calling browser 104.

Server 100 also provides access to computer systems employing MQ(Message Queue) communication protocols. Accordingly, computer 100 bprovides MQ messages to MQ listener 302 b of server 100. In thepreferred embodiment, MQ requests are processed in XML format.Accordingly, MQ listener 302 b provides requests sent to it to XMLadapter 307 b.

Server 100 also provides a scheduler which allows requests to bescheduled to be initiated at certain times or certain intervals. Thescheduler comprises scheduler adapter 307 c and scheduler controller 306c. There is no protocol listener 302 associated with the scheduler.Instead, the scheduler consists of a program that “wakes up” at regularintervals. Schedulable requests are entered into the scheduler database313 from request servlet 302 a or MQ listener 302 b. At times associatedwith the scheduled requests, scheduler 306 c initiates the processing ofthe request.

Referring to FIGS. 3 and 3 a, an example of the process flow throughserver 100 for an HTTP request is provided.

Step 3.1

HTTP request from browser 104 is generated and directed to servletengine 302 a.

Step 3.2

Servlet engine 302 a allocates a thread 303 a for the request. Servletengine 302 a dispatches the request to request servlet 304 a.

Step 3.3

Request servlet 304 a “listens” for the request and passes the requestto HTTP adapter manager 305. Referring to psuedo-code in FIG. 4A at line400, HTTP adapter manager 305 identifies which adapter 307 is to beused. At line 402 adapter 307 is called to convert the request to aformat recognized by controller 306.

FIGS. 4B(i) and 48(ii) provide a definition for a device format adapterand WTPAdapter which defines an HTTP device specific adapter. Referringto FIG. 4B(ii), HTTPAdapterImpl provides the pseudo-code for a baseimplementation for an HTTP adapter. Further, pseudo-code for HTTPBrowserprovides one implementation for HTTPAdapter for a browser andpseudo-code for HTTPPVCAdapter provides one implementation for a PVCadapter.

Step 3.4

Referring to FIGS. 3 and 3 a, adapter manager 305 determines that therequest originated from an Internet browser; accordingly, for thisexample, the request is passed to browser adapter 307 d.

Step 3.5

Browser adapter 307 d creates a request object and a response objectfrom the request information. In FIG. 4C(i), the object definition for aRequestObject (at 404) is provided.

Next, browser adapter 307 d populates the objects with information fromthe request. Transformation of request information to data for theobjects is based on the mapping defined in an XML mapping table 311.Table 311 is initialized during server 100 initialization. URL parameternames are mapped to command attribute names as defined in the XMLmapping table 311 and form an input properties object. For example, aURL parameter such as “merchant_rn” may be mapped to“merchantReferenceNumber” for the server command.

Next, browser adapter 307 d passes the request object and the responseobject to web controller 306 a.

Referring to FIGS. 4C(ii)-4C(iv), pseudo-code for web controller 306 ais provided. Web controller 306 a performs the following tasks inprocessing a request object:

-   -   1. Executing functions related to a HTTP session for device 104;        this includes establishing a correct user object and creating a        command context object based on the current HTTP session.        Further detail on the command context is provided later;    -   2. Determining whether a secure HTTP (HTTPS) is enforced for the        current URL. If it is enforced and the current HTTP request is        not HTTPS, then the browser is redirected to a HTTPS URL. See        FIG. 4C(iv) “prepareRequest” pseudo-code;    -   3. Initiating a transaction using Java Transaction API;    -   4. Instantiating a controller command 308 a or a view command        308 b and passing the command context and input property objects        to the command 308. FIG. 4C(iii) at lines 410 shows the        pseudo-code for the instantiation of the controller command 308        a and view command 308 b;    -   5. Re-attempting the controller command on a Transaction        Rollback exception if the controller command can be retried;    -   6. Fetching a response view command based on the view name and        the device type. A controller command normally returns a view        name when there is a response to be sent back to the client. The        response is displayed at the client through a view command 308        b. Three types of view commands 308 b are described later. If        there is no view name returned by the controller command, web        controller 306 a will send back a HTTP response with no data;        and    -   7. Rolling back or committing the current transaction. A        transaction must be rolled back if the command cannot be        completed.        Step 3.6

Referring to FIG. 4C(i), web controller creates a command contextrelated to the request received from the Browser adapter 307 d. Thestructure of the command context is shown at 406.

Web controller 306 a populates the command context using parameters fromthe request object and the response object. The parameters include thename of the store (“Merchants”) and the item requested (“stove”). Thecommand context is also provided the session information, e.g. thesource of the web session, the language, the time zone and informationidentifying the device type. The command context may also be providedwith a user profile associated with the command, any cookies or sessioninformation associated with the command context.

To instantiate the correct command associated with the request, webcontroller 306 a queries the command registry 309. Referring to FIGS. 3and 3A, command registry 309 comprises a series of tables containinginformation regarding specific command types and views for devicesaccessing server 100.

First, web controller 306 a looks up the corresponding command from theURLREG Table A in command registry 309. Table A provides a series ofcolumns containing information for interfaces for web controller 306 a.These interfaces are abstracted from other aspects of the softwareoperating on server 100 and accordingly, are independent of input andoutput parameter formats.

TABLE A URLREG Column Name Column Description URL URL name STORE_IDStore identifier DESCRIPTION Description of this URL HTTPS Secure HTTPrequired for this URL request AUTHENTICATION User sign-in is requiredfor this URL request INTERFACENAME Controller Command Interface Name

For each URL, a store can register different HTTP and AUTHENTICATIONattributes for the URL. Web controller 306 a fetches the interface nameof a controller command for an incoming URL request, and uses it to lookup the implementation class name from the CMDREG shown in Table B. Webcontroller 306 a also determines whether HTTPS is required for the URLrequest by evaluating the contents of the HTTPS field in Table A.

Next, web controller 306 a accesses a command registry table (Table B)in command registries 309. Using the contents of the INTERFACENAME fieldin Table A and correlating that entry to the INTERFACENAME field inTable B, a name of a class corresponding to the command of the requestis provided.

TABLE B CMDREG Name Description INTERFACENAME Command Interface NameSTORE_ID Store ID for this command DESCRIPTION Description of thiscommand CLASSNAME Conmand Implementation class name PROPERTIES Defaultname value pares as input properties to the command LASTUPDATE Lastupdate on this Command Entry TARGET Command target name. Set to null fornon target- table command.

Note that the command implementation class can differ amongst merchants.Controller command 308 a is a targetable command that directly interactswith a web controller 306 a. A targetable command can be executed on adifferent target container. In the preferred embodiment local targetsare supported. It will be appreciated that an implementation for EJBSession Bean as a targetable container may be provided. A targetablecontainer enables a command to be shipped into a local or remotecontainer, where the command will be executed.

Step 3.7

If the request requires the use of a controller command 308 a, webcontroller 306 a instantiates a controller command 308 a. The controllercommand 308 a may access database 106, using one or more entity beans318.

Entity beans 318 are persistent, transactional commerce objects providedby software operating on server 100. Data can be accessed from an entitybeen which more closely models concepts and objects in the commercedomain, see step 3.7.5. Beans 318 may extend or replace existing entitybeans 318. In addition, new application specific business requirements,can deploy entirely new entity beans. Entity beans 318 are implementedaccording to the Enterprise JavaBeans (EJB) component model known in theart.

Step 3.8

During execution, the controller command invokes one or more taskcommands 308 c.

Referring to FIG. 3, task command 308 c implements specific applicationlogic. In general, a controller command and a set of task commandstogether implement the application logic for a URL request. A taskcommand is not targetable, meaning it is always executed in the samecontainer as the controller command 308 a. A targetable commandinvocation incurs some overhead, so that making the task command 308 cnot targetable can improve the performance of the overall commandframeworks.

Step 3.9

Upon completion, the controller command returns the results of thecommand and the name of a view associated with the request. Referring toFIG. 8, in the embodiment, the response properties object comprises ahash table 800 containing the view information, the ID information, theitem and the results which are added to the response properties object.Data in the hash table 800 is formatted to correspond to the correctdevice type and controller. FIG. 4C(v) provides pseudo-code for thestructure of hash table 800.

Step 3.10

Next, to output the results, web controller 306 a instantiates andexecutes the view command.

The parameters of view command are provided from Table C in commandregistry 309. Table C is a database comprising a table having columns ofspecific views associated with various devices 104, 108 and 110.

Using Table C a view command for a specific output device may beassociated for each store using server 100. When a view command name isreturned from controller command 308 a or is specified in an exception,web controller 306 a examines the view command class from Table C.Multiple view command names may be mapped to the same implementationclass. A view or JSP may be invoked by a client 104 without acorresponding controller command 306. For example, a user can register alogon.jsp with the URL name as the view name without providing acorresponding controller command.

TABLE C VIEWREG Name Description VIEWNAME View name STORE_ID Store IDfor this command DEVICETYPE Output device type INTERFACENAME Viewcommand interface name DESCRIPTION Description of this command HTTPSSecure HTTP required to invoke this view, used for direct JSP invocationonly. CLASSNAME View command implementation class name PROPERTIESDefault name value pares as input properties to the view commandLASTUPDATE Last update on this entry

Referring to FIG. 5, there are three types of view commands:

i) Redirect view command 308 b(i)

-   -   A redirect view command sends the view using a redirect        protocol, such as the URL redirect, which causes the request        defined in the redirect URL to be executed. When a redirect        protocol is used, it changes the URL stacks in the browser. When        a reload instruction is entered, the redirected URL will be        executed instead of the original URL.        i) Direct view command 308 b(ii)    -   A Direct view command sends the response view directly to the        client.        i) Forward view command 308 b(iii)    -   A forward view command forward the view request to another Web        component, such as a JSP page 312.

Using the view name and the input device type, web controller 306 afetches a response JSP 312. With this scheme, a device specific view foreach device may be implemented. On completion, web controller 306 asends an appropriate HTTP response back to device 104 based on datareturned from controller command 308 a. Web controller 306 a has aframework allowing modification to its structure with minimum effort.For example, to add a new or change web controller 306 a, an extensioncan be made to it.

Before invoking JSP 312, web controller 306 a copies attributes from thocommand to JSP 312. The attributes become the input parameters of databeans 314 in the responding JSP 312. Data bean 314 provides the dynamiccontent for JSP 312. The input properties are often required by a databean 314, so that they can be used to form a primary key to fetch acomplete data object from database 106 via an EJB.

A sample VIEWREG table (i.e. a specific implementation of Table C) whichmay be used in the embodiment with key information is shown in Table Dbelow:

TABLE D COMMANDNAME DEVICETYPE INTERFACENAME CLASSNAME PROPERTIESProductDisplayView BROWSER ForwardViewCommand HttpForwardViewCommandImpl InterstItemAddView BROWSER RedirectViewCommandHttpRedirectView DocName=item.jsp CommandImpl InterItemDeleView BROWSERRedirectViewCommand HttpRedirectView DocName=item.jsp CommandImplGenericApplication BROWSER RedirectViewCommand HttpRedirectViewDocName=usererr.jsp Error CommandImpl GenericSystemError BROWSERRedirectViewCommand HttpRedirectView DocName=syserr.jsp CommandImplLogon BROWSER ForwardViewCommand HttpRedirectView DocName=logon.jspCommandImpl

Referring to FIG. 9, database table 900 corresponding to VIEWREG isshown during typical operation of server 100. Row 902 corresponds to theName column of Table C. To add a new view for a new device, a new entry904 is added to Table 900. Column 906 identifies the device typeassociated with a particular view. As such new PVC (pervasive computing)device in entry 904 will have its display formatted for PVC (per theentry in column 906) and will use the document “a2.jsp”. This is becausealthough the document name for a device can be the same, the PVC forwardview cmd/Impl can add a subdirectory to the attribute to make differentdisplays. Accordingly, for browser 104 document a.jsp is retrieved fromthe document directory, but for PVC devices, document pvc/a.jsp isretrieved from directory/pvc. As such, depending on the command, therewill be difference in appearance based on the device model. It will beappreciated that this structure allows new display formats to beinitiated for devices communicating with server 100.

Step 3.11

The view command forwards the request to a display template.

Steps 3.12 and 3.13

Within display template, a data bean is used to retrieve dynamicinformation form the database. Data bean manager 316 activates the databean.

Data beans 314 represent containers of properties (or data) that areprimarily used by page designers. Most commonly, they provide a simplerepresentation of an entity, such as a retailer, associated with server100. A page designer can place beans 314 on a JSP template, allowingdynamic information to be populated on the page at display time.Accordingly, the page designer only needs to know what data bean 314 canprovide and what data the bean 314 requires as input; there is no needfor the page designer to understand how the bean works.

A databean command 308 d is invoked by JSP page 312 when a databean isto be instantiated. The primary function of a databean command 318 is topopulate the data into a databean 314.

Other Command Aspects and Interfaces

The command and view are executed in one transaction. Accordingly, allshared objects between the command and view may be retrieved fromdatabase 106 with a single database transaction. It will be appreciatedthat reducing the number of transactions to database 106 is criticalbecause such query processing is typically the most expensive operationin an e-commerce system.

As introduced earlier, server 100 also processes MQ messages. MQ adapter304 b listens for incoming messages from network 102. In the embodiment,the MQ message is formatted in an XML format. The XML format adapterconverts the request information from an XML format the Request Object(see code 404, FIG. 4C(iii)) and passes it to the XML webcontroller 306b. FIG. 6A provides pseudo-code for the operation of MQ adapter 304 b;FIG. 6B provides pseudo-code for the operation of XML controller 306 b.

As described above, server 100 provides timed scheduling of tasksthrough scheduler 306 c. In FIG. 7A, scheduler 306 c runs backgroundjobs. Jobs may be executed either only once at specified times ormultiple times at determined intervals. A scheduler thread is allocatedto execute a scheduler job. FIG. 7B provides pseudo-code onSchedulerThread and SchedulerAdapter 307 c. SchedulerAdapter 307 creceives a job to be executed, converts information relating to the jobto a RequestObject (i.e. the common object used by controller 306) andpasses the RequestObject to webscheduler 306 c. Referring to FIG. 7B,web scheduler 306 c processes implementations which are specific to it,originating from scheduler 304 c. FIG. 7C provides pseudo-code forscheduler web controller 306C.

The preferred embodiment of the software on server 100 utilizes anobject oriented programming structure, such as a structure provided byJava. However, it will be appreciated that other programming languagesand structures may be used which provide the features of the describedembodiment.

Having thus described a particular embodiment, various alterations,modifications, and improvements will readily occur to those skilled inthe art. Such alterations, modifications, and improvements are intendedto be part of this disclosure, and are intended to be within the scopeof the invention. Accordingly, the foregoing description is by way ofexample only and is not intended as limiting. It is noted that thoseskilled in the art will appreciate that various modifications of detailmay be made to the preferred embodiments described herein which wouldcome within the scope of the invention as described in the followingclaims.

1. A method of interfacing a computer system executing commercialtransactions initiated from a plurality of communication devices, eachof said plurality of communication devices having a display, saiddisplay having custom display parameters, said method comprising: atsaid computer system, for one device of said plurality of communicationdevices receiving a command from said one device; translating saidcommand into a common format command, said common format command beingexecutable by said computer system; executing said common formatcommand; receiving results from execution of said common format command;accessing a database comprising elements identifying a plurality of setsof display parameters, one set of display parameters of said pluralityof sets of display parameters for use with said custom displayparameters; and retrieving from said database said one set of displayparameters.
 2. A method of interfacing a computer system executingcommercial transactions initiated from a plurality of communicationdevices as claimed in claim 1, said method further comprising extractingcommand parameters from said command into an object after said receivingsaid command and initiating displaying of said results using said oneset of display parameters on said one device after retrieving from saiddatabase said one set of display parameters.
 3. A method of interfacinga computer system executing commercial transactions initiated from aplurality of communication devices as claimed in claim 2, wherein saidtranslating said command into said common format command accesses afirst table having a first record, said first record having a firstentry for said command and a second table having a second recordcorrelated to said first record for said common format command.
 4. Amethod of interfacing a computer system executing commercialtransactions initiated from a plurality of communication devices asclaimed in claim 2, wherein after said receiving said results fromexecution of said common format command, said results are incorporatedinto said object.
 5. A method of interfacing a computer system executingcommercial transactions initiated from a plurality of communicationdevices as claimed in claim 4, wherein after retrieving from saiddatabase said one set of display parameters said one set of displayparameters are incorporated into said object.
 6. A method of interfacinga computer system executing commercial transactions initiated from aplurality of communication devices as claimed in claim 5, wherein afterretrieving from said database said one set of display parameters, a viewcommand identifying a composition of a view associated with said commandis incorporated into said object.
 7. A method of interfacing a computersystem executing commercial transactions initiated from a plurality ofcommunication devices as claimed in claim 6, wherein said view commandis selected from one of a forward view, a redirected view or a directview.
 8. A method of interfacing a computer system to a plurality ofcommunication devices as claimed in claim 7 wherein said method furtherproduces an output report relating to said results.
 9. A method ofinterfacing a computer system to a plurality of communication devices asclaimed in claim 8 wherein said method is embodied in an object orientedprogramming language.
 10. A system comprising: a first computer having aprogram stored therein on a tangible computer-readable medium, a networkconnection connected to said computer and carrying said program beingencoded in said tangible computer-readable medium, said program for usein a computer system having memory upon which said encoded program isembedded, said computer system executing commercial transactionsinitiated from a plurality of communication devices, each of saidplurality of communication devices having a display, said display havingcustom display parameters, said program embodying a method comprising:for one device of said plurality of communication devices receiving acommand from said one device; translating said command into a commonformat command, said common format command being executable by saidcomputer system; executing said common format command; receiving resultsfrom execution of said common format command; accessing a databasecomprising elements identifying a plurality of sets of displayparameters, one set of display parameters of said plurality of sets ofdisplay parameters for use with said custom display parameters; andretrieving from said database said one set of display parameters.
 11. Anarticle as claimed in claim 10, wherein said method of said programfurther comprises extracting command parameters from said command into aobject after said receiving said command and initiating displaying ofsaid results using said one set of display parameters on said onecommunication device after retrieving from said database said one set ofdisplay parameters.
 12. An article as claimed in claim 11, wherein saidmethod of said program further comprises accessing a first table havinga first record, said first record having a first entry for said commandand a second table having a second record correlated to said firstrecord for said common format command.
 13. An article as claimed inclaim 12, wherein said method of said program further comprisesincorporating said results into said object after said receiving saidresults from execution of said common format command.
 14. An article asclaimed in claim 13, wherein said method of said program furthercomprises incorporating said one set of display parameters into saidobject after retrieving from said database said one set of displayparameters.
 15. An article as claimed in claim 14, wherein said methodof said program further comprises incorporating a view commandidentifying a composition of a view associated with said command intosaid object after retrieving from said database said one set of displayparameters.
 16. An article as claimed in claim 15, wherein said methodof said program further comprises producing an output report relatingsaid results on said one device.
 17. A system for executing commercialtransactions initiated from a plurality of communication devices, eachof said plurality of communication devices having a display, saiddisplay having custom display parameters, said system comprising: acomputer; a communication link for said computer to said plurality ofcommunication devices; a program operating on said computer, saidprogram embodying a method comprising: for one device of said pluralityof communication devices; receiving a command from said one device;translating said command into a common format command, said commonformat command being executable by said computer system; executing saidcommon format command; receiving results from execution of said commonformat command; accessing a database comprising elements identifying aplurality of sets of display parameters, one set of display parametersof said plurality of sets of display parameters for use with said customdisplay parameters; and retrieving from said database said one set ofdisplay parameters.
 18. A system for executing commercial transactionsas claimed in claim 17, wherein said method of said program furthercomprises extracting command parameters from said command into a objectafter said receiving said command and initiating displaying of saidresults using said one set of display parameters on said onecommunication device after retrieving from said database said one set ofdisplay parameters.
 19. A system for executing commercial transactionsas claimed in claim 18, wherein said method of said program furthercomprises accessing a first table having a first record, said firstrecord having a first entry for said command and a second table having asecond record correlated to said first record for said common formatcommand.
 20. A system for executing commercial transactions as claimedin claim 19, wherein said method of said program further comprisesincorporating said results into said object after said receiving saidresults from execution of said common format command.
 21. A system forexecuting commercial transactions as claimed in claim 20, wherein saidmethod of said program further comprises incorporating said one set ofdisplay parameters into said object after retrieving from said databasesaid one set of display parameters.
 22. A system for executingcommercial transactions as claimed in claim 21, wherein said method ofsaid program further comprises incorporating a view command identifyinga composition of a view associated with said command into said objectafter retrieving from said database said one set of display parameters.23. A system for executing commercial transactions as claimed in claim22, wherein said method of said program further comprises producing anoutput report relating said results on said one device.
 24. A systemcomprising: a first computer having a program stored therein; a computerreadable modulated carrier signal, a network connection connected tosaid computer and carrying said program being encoded in said computerreadable modulated carrier signal, said program for use in a computersystem having memory upon which said encoded program is embedded, saidcomputer system executing commercial transactions initiated from aplurality of communication devices, each of said plurality ofcommunication devices having a display, said display having customdisplay parameters, said program embodying a method comprising: for onedevice of said plurality of communication devices receiving a commandfrom said one device; translating said command into a common formatcommand, said common format command being executable by said computersystem; executing said common format command; receiving results fromexecution of said common format command; accessing a database comprisingelements identifying a plurality of sets of display parameters, one setof display parameters of said plurality of sets of display parametersfor use with said custom display parameters; and retrieving from saiddatabase said one set of display parameters.
 25. A system as claimed inclaim 24, wherein said method of said program further comprisesextracting command parameters from said command into a object after saidreceiving said command and initiating displaying of said results usingsaid one set of display parameters on said one communication deviceafter retrieving from said database said one set of display parameters.26. A system as claimed in claim 25, wherein said method of said programfurther comprises accessing a first table having a first record, saidfirst record having a first entry for said command and a second tablehaving a second record correlated to said first record for said commonformat command.
 27. A system as claimed in claim 26, wherein said methodof said program further comprises incorporating said results into saidobject after said receiving said results from execution of said commonformat command.
 28. A system as claimed in claim 27, wherein said methodof said program further comprises incorporating said one set of displayparameters into said object after retrieving from said database said oneset of display parameters.
 29. A system as claimed in claim 28, whereinsaid method of said program further comprises incorporating a viewcommand identifying a composition of a view associated with said commandinto said object after retrieving from said database said one set ofdisplay parameters.
 30. A system as claimed in claim 29, wherein saidmethod of said program further comprises producing an output reportrelating said results on said one device.
 31. A system comprising: acomputer system having memory for storage therein; a network connectionconnected to said computer system and carrying a program to be encodedfor use in said computer system memory upon which said encoded programis embedded, said computer system executing commercial transactionsinitiated from a plurality of communication devices, each of saidplurality of communication devices having a display, said display havingcustom display parameters, said program embodying a method comprising:for one device of said plurality of communication devices receiving acommand from said one device; translating said command into a commonformat command, said common format command being executable by saidcomputer system; executing said common format command; receiving resultsfrom execution of said common format command; accessing a databasecomprising elements identifying a plurality of sets of displayparameters, one set of display parameters of said plurality of sets ofdisplay parameters for use with said custom display parameters; andretrieving from said database said one set of display parameters.